<template>
  <div class="article-page">
    <div
      class="article-item"
      v-for="item in list"
      :key="item.id"
      @click="$router.push(`/article-detail/${item.id}`)"
    >
      <div class="head">
        <img :src="item.creatorAvatar" alt="" />
        <div class="con">
          <p class="title">{{ item.creatorName }}</p>
          <p class="other">靑春，那么骚 | 2022-01-20</p>
        </div>
      </div>
      <div class="body">
        {{ item.content }}
      </div>
      <div class="foot">点赞 44 | 浏览 315</div>
    </div>
  </div>
</template>

<script>
// import router from "@/router";
// 编程式导航
// this.$router.push
// this.$router.go(-1)
// this.$router.back()

// 写代码试错 一个没效果换一个
// router 只有1个 它是路由大的实例对象 它主要是用来做什么的? 用来路由切换 跳转
// route  指的就是当前这一条路线 可以获取当前这条路由相关的参数信息
// 传参(两种)
// /abc?id=1 this.$route.query.id
// /abc/1 this.$route.params.id

// 所有放在视图中要渲染的数据必须在data中初始化一下，否则它就不是响应式的
export default {
  name: "ArticlePage",
  // 生命周期钩子函数
  // created 发送ajax
  // mounted 操作dom
  // beforeDestroy 清除定时器
  async created() {
    // this.$ajax({ url: "/mock/3083/articles" }).then((res) => {
    //   console.log(res);
    // });
    //方法如果是get可以不写 因为是默认值
    const res = await this.$ajax({ url: "/mock/3083/articles" });
    console.log(res);
    this.list = res.data.result.rows;
    // 创建了一个错误对象实例
    throw new Error("出错了"); //手动抛出一个异常
  },
  data() {
    return {
      list: [],
    };
  },
};
</script>
<style lang="less" scoped>
.article-page {
  background: #f5f5f5;
}
.article-item {
  margin-bottom: 10px;
  background: #fff;
  padding: 10px 15px;
  .head {
    display: flex;
    img {
      width: 40px;
      height: 40px;
      border-radius: 50%;
      overflow: hidden;
    }
    .con {
      flex: 1;
      overflow: hidden;
      padding-left: 15px;
      p {
        margin: 0;
        line-height: 1.5;
        &.title {
          text-overflow: ellipsis;
          overflow: hidden;
          width: 100%;
          white-space: nowrap;
        }
        &.other {
          font-size: 10px;
          color: #999;
        }
      }
    }
  }
  .body {
    font-size: 14px;
    color: #666;
    line-height: 1.6;
    margin-top: 10px;
    overflow: hidden;
    text-overflow: ellipsis;
    display: -webkit-box;
    -webkit-line-clamp: 2;
    -webkit-box-orient: vertical;
  }
  .foot {
    font-size: 12px;
    color: #999;
    margin-top: 10px;
  }
}
</style>
